//////////////////////////////////////////////////////////////////
//                        COPYRIGHT NOTICE
// (c) Copyright 1998-2002 by Jeongnim Kim
//   All rights reserved.
//////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////
//                    CONTACT INFORMATION
//   Jeongnim Kim
//   National Center for Supercomputing Applications &
//   Materials Computation Center
//   University of Illinois, Urbana-Champaign
//   Urbana, IL 61801
//   e-mail: jnkim@ncsa.uiuc.edu
//   Tel:    217-244-6319 (NCSA) 217-333-3324 (MCC)
//
// Supported by 
//   National Center for Supercomputing Applications, UIUC
//   Materials Computation Center, UIUC
//   Department of Physics, Ohio State University
//   Ohio Supercomputer Center
//////////////////////////////////////////////////////////////////
// -*- C++ -*-

/////////////////////////////////////////////////////////////////////////////
// declaration of Lapack routines 
////////////////////////////////////////////////////////////////////////////
#ifndef OHMMS_LAPACKFUNCTIONS_H
#define OHMMS_LAPACKFUNCTIONS_H

#include <complex>
using namespace std;

namespace OhmmsNumerics {

void diag(const char jobz, const char uplo, const int n, double* a,
          const int m, double* eval, double* workd, int lwork,  int& info);

void diag(const char jobz, const char uplo, const int n, complex<double>* a,
          const int m, double* eval, complex<double>* workd, 
          int lwork,  double* rwork, int& info);

void diag(const char jobz, const char uplo, const int n, float* a,
          const int m, float* eval, float* workd, int lwork,  int& info);
 
void diag(const int itype, const char jobz, const char uplo,
          const int n, double* a,
          const int m, double* b, const int lm, double* eval,
          double* workd, int lwork,  int& info);

void diag(const int itype, const char jobz, const char uplo,
          const int n, complex<double>* a,
          const int m, complex<double>* b, const int lm, double* eval,
          complex<double>* workd, int lwork,  double* rwork, int& info);


void diag(const int itype, const char jobz, const char uplo,
          const int n, float* a,
          const int m, float* b, const int lm, float* eval,
          float* workd, int lwork,  int& info);                     
}
#endif
/***************************************************************************
 * $RCSfile: Lapackf.h,v $   $Author: jnkim $
 * $Revision: 1.1.1.1 $   $Date: 2004/07/23 21:04:02 $
 * $Id: Lapackf.h,v 1.1.1.1 2004/07/23 21:04:02 jnkim Exp $ 
 ***************************************************************************/

